//
//  CZSearchView.swift
//  微博
//
//  Created by 霸气的刘吉庆 on 16/4/16.
//  Copyright © 2016年 ios. All rights reserved.
//

import UIKit

 /**
 
 注意前方高能 : 1.IBInspectable IBInspectable 其修饰的属性可以在xib右边的控制面板里面显示出来
 
 
 //动态渲染的含义就是你改变了值,他就是在控件上立马显示出来给用户,程序员知道这里修改了
 2.IBDesignable 这是修饰自定义类的.其修饰的类可以在xib里面动态渲染
 
 
 
 */


//注意要把size class的勾点掉

class CZSearchView: UIView {

   //关联这个view,主要目的是
    /**
    1.设置这个view为第三个控制器的titleView
    2.对立面进行一些列的逻辑判断
    
    
    
    
    
    */
    
    
    //这个方法什么时候调用呢,就是从xib中唤醒的时候调用,这意味着连线什么的都已经加载完成
    override func awakeFromNib() {
        
        //设置leftView,注意这个leftView是textField的一个属性
        
        
        leftView.frame.size = CGSize(width: self.frame.height, height: self.frame.height)
        
        textField.leftView = leftView
        
        textField.leftViewMode = .Always
        
        //通过代码的形式设置边框
        
        //注意都是用的是layer,首先要点出layer
        
//        textField.layer.borderColor =
        
//        textField.layer.borderColor = 
        
        
        //还有就是bounds 和 corn连用
        
//        textField.layer.cornerRadius
        
//        textField.layer.masksToBounds
        
        
        
        
    }
    
    @IBOutlet weak var cancelButton: UIButton!
    
    @IBOutlet weak var textField: UITextField!
    

    
    @IBOutlet weak var textConstant: NSLayoutConstraint!
    
    
    //通过类方法去xib里面加载视图
    
    class func searchView() -> CZSearchView {
        
        
        //注意这里的last 也是一个可选值
        
        return NSBundle.mainBundle().loadNibNamed("CZSearchView", owner: nil, options: nil).last! as! CZSearchView
        
        
    }
    
    //注意代码创建,会走下面这个方法
    
//    override init(frame: CGRect) {
//        super.init(frame: frame)
//    }
//
//    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
    
    
    //开始编辑的时候,注意,让他的约束更新
    @IBAction func didStartEnditing(sender: UITextField) {
        
        
        //修改约束
        textConstant.constant = cancelButton.frame.width
        
        //动画效果放到代码块里面
        
        UIView.animateWithDuration(0.25) { () -> Void in
            
            
            self.layoutIfNeeded()
            
        }
        
        print("开始编辑了哈哈哈")
        
        
        
    }
    
    //点击了取消按钮
    
    @IBAction func didClickCancelButton(sender: UIButton) {
        
        textConstant.constant = 0
        
        
        UIView.animateWithDuration(0.25) { () -> Void in
            
            
            self.layoutIfNeeded()
            
        }
        
        //注意撤销第一响应者
        
        textField.resignFirstResponder()
        
        
        
        
        
        
        
    }
    
    //懒加载右边的搜索的图片
    
    private lazy var leftView: UIImageView = {
        
        let imageView = UIImageView(image: UIImage(named: "searchbar_textfield_search_icon"))
        
        //设置内容的样式
        
        //不设置的话很难看
        
        imageView.contentMode = .Center
        
        
        
        
        return imageView
        
        
        
        
        
    }()
    
    
    
    
    
    
    
    
    

}
